//
// Created by Administrator on 2020/10/27.
//

#ifndef O5G_SRC_O5GRAN_L2_SRC_L1INTF_INCLUDE_L1INTFDEF_H_
#define O5G_SRC_O5GRAN_L2_SRC_L1INTF_INCLUDE_L1INTFDEF_H_

#include "../../common/commDef.h"

typedef struct RanL2L1IntfCellInst
{
    uint32_t inUse;
    uint32_t cellId;

    uint32_t nbIdx;
    uint32_t cellIdx;

} S_RanL2L1IntfCellInst;

typedef struct RanL2L1IntfNbInst
{
    uint32_t inUse;
    uint32_t nbId;

    uint32_t nbIdx;

    uint32_t cellNum;
    S_RanL2L1IntfCellInst cellInst[RAN_CELL_NUM_MAX];
} S_RanL2L1IntfNbInst;

typedef struct RanL2L1IntfL1IntfContext
{
    pthread_t ulTid;
    pthread_t dlTid;
    S_OsSelect ulSelector;
    S_OsSelect dlSelector;
    S_Poller *ulPoller;
    S_Poller *dlPoller;
    uint32_t nbNum;
    S_RanL2L1IntfNbInst nbInst[RAN_NODEB_NUM_MAX];
} S_RanL2L1IntfContext;

extern S_RanL2L1IntfContext *gpRanL2L1IntfContext;

#endif //O5G_SRC_O5GRAN_L2_SRC_L1INTF_INCLUDE_L1INTFDEF_H_
